//
// Created by PC on 2023/4/3.
/*
 * 考点: ASCII码
http://www.aisichuang.net/#/main/Competition/TitlePage?id=1550&raceId=1289
 题目ID: T0036 题目名称: 书籍分类 难度:低 时间限制: 1000 MS 内存限制: 256 MB
     题目描述
李老师购买了若干本书籍，每本书都有一个英文名称。 为了方便管理，李老师打算按书籍名称的首字母进行分类（不区分大小写）。 由于书籍的数量比较多，李老师请你来帮他完成这个任务。
输入格式
输入数据不超过 1000行，每行一个字符串，对应一本书籍的名称。
说明：书籍名称只包含大写或小写字母，且长度不超过 20。
输出格式
第一行一个整数，为所有书籍名称按首字母分类后的种类数量。 接下来每行输出一个大写字母（按字母表的顺序）和一个整数，表示以这个字母开头的书籍的数量。
样例输入 #1
Chinese
math
Math
chinese
english
样例输出 #1
3
C 2
E 1
M 2
 */
// 竞赛系统会在输入的最后自动加EOF以结束输入, 在clion中要在调试模式输入完后按Ctrl+D以结束输入
//

#include <iostream>

using namespace std;

int main()
{
    string s;
    int words[26] = {0};
    while (cin >> s)
    {
        if (s[0] >= 'a' and s[0] <= 'z')
        {
//            s[0] -= 'a' - 'A';
            words[s[0] - 'a']++;
//           printf("%s\n",s.c_str());
        } else
        {
            words[s[0] - 'A']++;
        }
    }
    int count=0;
    for (int i = 0; i < 26; ++i)
    {
        if (words[i] != 0)
        {
            count++;
        }
    }
    printf("%d\n", count);
    for (int i = 0; i < 26; ++i)
    {
        if (words[i] != 0)
        {
            count++;
            printf("%c %d\n", i + 'A', words[i]);
        }
    }
    return 0;
}
